import env from '~/assets/js/common/env';

export default function({ app, redirect, route, error }) {
  let $axios = app.$axios;
  $axios.defaults.timeout = 50000;
  $axios.onRequest(config => {
    //服务端需要设置host，来让nginx转发可以识别。因为本项目也是通过nginx转发进来的，并且需要请求的接口也通过转发
    // if (env.isServer) {
    //   Object.assign(config.headers, {
    //     host: constants.domain,
    //     common: {
    //       host: constants.domain
    //     }
    //   });
    // }
    env.isDev && console.log('request:', config);
  });
  $axios.onResponse(response => {
    env.isDev && console.log('response:', response.data);
  });

  $axios.onError(err => {
    console.error('axios errors: ', err, route);
    const fullPath = route.fullPath;
    const returnUrl = encodeURIComponent(
      // `http://10.1.14.51:3000${fullPath}`
    );
    const code = parseInt(err.response && err.response.status);
    if (env.isServer) {
      if (code === 404) {
        //除了401之外，都跳到404页面。实际上，下面填写任意不存在的路径都可以跳转到404页面，因为不存在的路径本身就会跳转到404页面。
        redirect('/state/404');
      } else if (code === 500) {
        redirect('/state/500');
      }
    }
  });
}
